package com.itheima.io.inputstreamreader.demo01;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * 使用InputStreamReader读取数据
 * InputStreamReader是Reader的子类对象，在读取数据的时候可以去指定字符编码表，如果没有指定字符编码表，使用的就是默认的字符编码表。
 */
public class InputStreamReaderDemo01 {

    public static void main(String[] args) throws IOException {

        // 1. 创建InputStreamReader对象
        // public InputStreamReader​(InputStream in):                       创建一个使用默认字符编码表(UTF-8)的InputStreamReader。
        // public InputStreamReader​(InputStream in, String charsetName)    使用指定的字符编码表去创建InputStreamReader对象
        /**
         * InputStreamReader在进行对象创建的时候，它需要一个InputStream的对象，InputStream是抽象类，我们不能直接new，因此我们需要为其传递一个InputStream的
         * 子类对象，而我们一般选定的就是FileInputStream ； FileInputStream是一个字节输入流对象，而我们在创建InputStreamReader的时候是一个字符输入流
         * 传递一个字节输入流对象得到的是一个字符输入流对象，因此我们把这个流也常常称之为： 转换流输入流
         */
        // FileInputStream fileInputStream = new FileInputStream("itheima-io-inputstreamreader\\a.txt");
        // InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream) ;
        // InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("itheima-io-inputstreamreader\\a.txt")) ;

        InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("itheima-io-inputstreamreader\\a.txt") , "utf-8") ;

        // 2. 读取数据
        int ch = -1 ;
        while((ch = inputStreamReader.read()) != -1) {
            System.out.print((char)ch);
        }

        // 3. 释放资源
        inputStreamReader.close();

    }

}
